home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / StdEnv / Clean System Files / StdBool.abc < prev    next >
Encoding:
Text File  |  1997-06-17  |  5.0 KB  |  383 lines  |  [TEXT/3PRM]

  1. .comp 914 010111001
  2. .code       0       0       0
  3. .start _nostart_
  4. .depend "StdOverloaded"
  5. .depend "StdBool"
  6. .endinfo
  7. .implab _cycle_in_spine
  8. .implab _type_error
  9. .implab _hnf
  10. .impdesc _ind
  11. .implab _indirection _eaind
  12. .impdesc e_system_dif
  13. .implab e_system_nif e_system_eaif
  14. .impdesc e_system_dAP
  15. .implab e_system_nAP e_system_eaAP
  16. .implab e_system_sif
  17. .implab e_system_sAP
  18. .impdesc _Cons
  19. .impdesc _Nil
  20. .impdesc _Tuple
  21. .impdesc d_S.1
  22. .implab n_S.1 ea_S.1
  23. .impdesc d_S.2
  24. .implab n_S.2 ea_S.2
  25. .impdesc d_S.3
  26. .implab n_S.3 ea_S.3
  27. .impdesc d_S.4
  28. .implab n_S.4 ea_S.4
  29. .impdesc d_S.5
  30. .implab n_S.5 ea_S.5
  31. .impdesc d_S.6
  32. .implab n_S.6 ea_S.6
  33. .implab _driver
  34. .string m_StdBool "StdBool"
  35. .export e_StdBool_d==;b
  36. .export e_StdBool_s==;b
  37. .export e_StdBool_n==;b
  38. .desc e_StdBool_d==;b e_StdBool_n==;b e_StdBool_l==;b 2 "== (Bool)"
  39. .o 2 0
  40. e_StdBool_l==;b
  41.     repl_args 1 1
  42. .d 2 0
  43.     jsr ea1
  44. .o 0 1 b
  45.     buildB_b 0
  46.     pop_b 1
  47. .d 1 0
  48.     rtn
  49. .n 2 e_StdBool_d==;b
  50. .o 1 0
  51. e_StdBool_n==;b
  52.     push_node _cycle_in_spine 2
  53. .d 2 0
  54.     jsr ea1
  55. .o 0 1 b
  56.     fillB_b 0 0
  57.     pop_b 1
  58. .d 1 0
  59.     rtn
  60. .o 2 0
  61. ea1
  62.     jsr_eval 1
  63.     jsr_eval 0
  64.     pushB_a 1
  65.     pushB_a 0
  66.     pop_a 2
  67. .o 0 2 bb
  68. e_StdBool_s==;b
  69. .o 0 2 bb
  70. s1
  71. .inline ==;b
  72.     eqB
  73. .end
  74. .d 0 1 b
  75.     rtn
  76. .export e_StdBool_dtoBool;b
  77. .export e_StdBool_stoBool;b
  78. .export e_StdBool_ntoBool;b
  79. .desc e_StdBool_dtoBool;b e_StdBool_ntoBool;b e_StdBool_ltoBool;b 1 "toBool (Bool)"
  80. .o 2 0
  81. e_StdBool_ltoBool;b
  82.     pop_a 1
  83. .d 1 0
  84.     jsr ea2
  85. .o 0 1 b
  86.     buildB_b 0
  87.     pop_b 1
  88. .d 1 0
  89.     rtn
  90. .n 1 e_StdBool_dtoBool;b
  91. .o 1 0
  92. e_StdBool_ntoBool;b
  93.     push_node _cycle_in_spine 1
  94. .d 1 0
  95.     jsr ea2
  96. .o 0 1 b
  97.     fillB_b 0 0
  98.     pop_b 1
  99. .d 1 0
  100.     rtn
  101. .o 1 0
  102. ea2
  103.     jsr_eval 0
  104.     pushB_a 0
  105.     pop_a 1
  106. .o 0 1 b
  107. e_StdBool_stoBool;b
  108. .o 0 1 b
  109. s2
  110. .inline toBool;b
  111.     no_op
  112. .end
  113. .d 0 1 b
  114.     rtn
  115. .export e_StdBool_dtoString;b
  116. .export e_StdBool_stoString;b
  117. .export e_StdBool_ntoString;b
  118. .desc e_StdBool_dtoString;b e_StdBool_ntoString;b e_StdBool_ltoString;b 1 "toString (Bool)"
  119. .o 2 0
  120. e_StdBool_ltoString;b
  121.     pop_a 1
  122. .d 1 0
  123.     jsr ea3
  124. .o 1 0
  125.     create
  126.     push_a 1
  127.     fill ARRAY 1 _hnf 1
  128.     update_a 0 1
  129.     pop_a 1
  130. .d 1 0
  131.     rtn
  132. .n 1 e_StdBool_dtoString;b
  133. .o 1 0
  134. e_StdBool_ntoString;b
  135.     push_node _cycle_in_spine 1
  136. .d 1 0
  137.     jsr ea3
  138. .o 1 0
  139.     push_a 0
  140.     fill ARRAY 1 _hnf 2
  141.     pop_a 1
  142. .d 1 0
  143.     rtn
  144. .o 1 0
  145. ea3
  146.     jsr_eval 0
  147.     pushB_a 0
  148.     pop_a 1
  149. .o 0 1 b
  150. e_StdBool_stoString;b
  151. .o 0 1 b
  152. s3
  153. .inline toString;b
  154. .d 0 1 b
  155.     jsr BtoAC
  156. .o 1 0
  157. .end
  158. .d 1 0
  159.     rtn
  160. .export e_StdBool_dfromBool;b
  161. .export e_StdBool_sfromBool;b
  162. .export e_StdBool_nfromBool;b
  163. .desc e_StdBool_dfromBool;b e_StdBool_nfromBool;b e_StdBool_lfromBool;b 1 "fromBool (Bool)"
  164. .o 2 0
  165. e_StdBool_lfromBool;b
  166.     pop_a 1
  167. .d 1 0
  168.     jsr ea4
  169. .o 0 1 b
  170.     buildB_b 0
  171.     pop_b 1
  172. .d 1 0
  173.     rtn
  174. .n 1 e_StdBool_dfromBool;b
  175. .o 1 0
  176. e_StdBool_nfromBool;b
  177.     push_node _cycle_in_spine 1
  178. .d 1 0
  179.     jsr ea4
  180. .o 0 1 b
  181.     fillB_b 0 0
  182.     pop_b 1
  183. .d 1 0
  184.     rtn
  185. .o 1 0
  186. ea4
  187.     jsr_eval 0
  188.     pushB_a 0
  189.     pop_a 1
  190. .o 0 1 b
  191. e_StdBool_sfromBool;b
  192. .o 0 1 b
  193. s4
  194. .inline fromBool;b
  195.     no_op
  196. .end
  197. .d 0 1 b
  198.     rtn
  199. .export e_StdBool_dfromBool;#
  200. .export e_StdBool_sfromBool;#
  201. .export e_StdBool_nfromBool;#
  202. .desc e_StdBool_dfromBool;# e_StdBool_nfromBool;# e_StdBool_lfromBool;# 1 "fromBool ({#})"
  203. .o 2 0
  204. e_StdBool_lfromBool;#
  205.     pop_a 1
  206. .d 1 0
  207.     jsr ea5
  208. .o 1 0
  209.     create
  210.     push_a 1
  211.     fill ARRAY 1 _hnf 1
  212.     update_a 0 1
  213.     pop_a 1
  214. .d 1 0
  215.     rtn
  216. .n 1 e_StdBool_dfromBool;#
  217. .o 1 0
  218. e_StdBool_nfromBool;#
  219.     push_node _cycle_in_spine 1
  220. .d 1 0
  221.     jsr ea5
  222. .o 1 0
  223.     push_a 0
  224.     fill ARRAY 1 _hnf 2
  225.     pop_a 1
  226. .d 1 0
  227.     rtn
  228. .o 1 0
  229. ea5
  230.     jsr_eval 0
  231.     pushB_a 0
  232.     pop_a 1
  233. .o 0 1 b
  234. e_StdBool_sfromBool;#
  235. .o 0 1 b
  236. s5
  237. .inline fromBool;#
  238. .d 0 1 b
  239.     jsr BtoAC
  240. .o 1 0
  241. .end
  242. .d 1 0
  243.     rtn
  244. .export e_StdBool_dnot
  245. .export e_StdBool_snot
  246. .export e_StdBool_nnot
  247. .desc e_StdBool_dnot e_StdBool_nnot e_StdBool_lnot 1 "not"
  248. .o 2 0
  249. e_StdBool_lnot
  250.     pop_a 1
  251. .d 1 0
  252.     jsr ea6
  253. .o 0 1 b
  254.     buildB_b 0
  255.     pop_b 1
  256. .d 1 0
  257.     rtn
  258. .n 1 e_StdBool_dnot
  259. .o 1 0
  260. e_StdBool_nnot
  261.     push_node _cycle_in_spine 1
  262. .d 1 0
  263.     jsr ea6
  264. .o 0 1 b
  265.     fillB_b 0 0
  266.     pop_b 1
  267. .d 1 0
  268.     rtn
  269. .o 1 0
  270. ea6
  271.     jsr_eval 0
  272.     pushB_a 0
  273.     pop_a 1
  274. .o 0 1 b
  275. e_StdBool_snot
  276. .o 0 1 b
  277. s6
  278. .inline not
  279.     notB
  280. .end
  281. .d 0 1 b
  282.     rtn
  283. .export e_StdBool_d&&
  284. .export e_StdBool_s&&
  285. .export e_StdBool_n&&
  286. .desc e_StdBool_d&& e_StdBool_n&& e_StdBool_l&& 2 "&&"
  287. .o 2 0
  288. e_StdBool_l&&
  289.     repl_args 1 1
  290. .d 2 0
  291.     jsr ea7
  292. .o 0 1 b
  293.     buildB_b 0
  294.     pop_b 1
  295. .d 1 0
  296.     rtn
  297. .n 2 e_StdBool_d&&
  298. .o 1 0
  299. e_StdBool_n&&
  300.     push_node _cycle_in_spine 2
  301. .d 2 0
  302.     jsr ea7
  303. .o 0 1 b
  304.     fillB_b 0 0
  305.     pop_b 1
  306. .d 1 0
  307.     rtn
  308. .o 2 0
  309. ea7
  310.     jsr_eval 0
  311.     pushB_a 0
  312.     pop_a 1
  313. .o 1 1 b
  314. e_StdBool_s&&
  315. .o 1 1 b
  316. s7
  317. .inline &&
  318. .end
  319.     push_b 0
  320.     jmp_false l1
  321.     pop_b 1
  322.     jsr_eval 0
  323.     pushB_a 0
  324.     pop_a 1
  325. .d 0 1 b
  326.     rtn
  327. l1
  328.     pop_a 1
  329. .d 0 1 b
  330.     rtn
  331. .d 0 1 b
  332.     rtn
  333. .export e_StdBool_d||
  334. .export e_StdBool_s||
  335. .export e_StdBool_n||
  336. .desc e_StdBool_d|| e_StdBool_n|| e_StdBool_l|| 2 "||"
  337. .o 2 0
  338. e_StdBool_l||
  339.     repl_args 1 1
  340. .d 2 0
  341.     jsr ea8
  342. .o 0 1 b
  343.     buildB_b 0
  344.     pop_b 1
  345. .d 1 0
  346.     rtn
  347. .n 2 e_StdBool_d||
  348. .o 1 0
  349. e_StdBool_n||
  350.     push_node _cycle_in_spine 2
  351. .d 2 0
  352.     jsr ea8
  353. .o 0 1 b
  354.     fillB_b 0 0
  355.     pop_b 1
  356. .d 1 0
  357.     rtn
  358. .o 2 0
  359. ea8
  360.     jsr_eval 0
  361.     pushB_a 0
  362.     pop_a 1
  363. .o 1 1 b
  364. e_StdBool_s||
  365. .o 1 1 b
  366. s8
  367. .inline ||
  368. .end
  369.     push_b 0
  370.     jmp_true l2
  371.     pop_b 1
  372.     jsr_eval 0
  373.     pushB_a 0
  374.     pop_a 1
  375. .d 0 1 b
  376.     rtn
  377. l2
  378.     pop_a 1
  379. .d 0 1 b
  380.     rtn
  381. .d 0 1 b
  382.     rtn
  383.